#ifndef __DICTPRODUCER_HPP__
#define __DICTPRODUCER_HPP__

#include <vector>
#include <string>
#include <map>
#include <set>

using std::vector;
using std::string;
using std::set;
using std::map;
using std::pair;

class SplitTool;

//词典创建类
class DictProducer
{
public:
    DictProducer(const string& dir);//构造函数
    DictProducer(const string& dir, SplitTool* _splitTool);//构造函数，为处理中文
    ~DictProducer() {}//析构函数
    void buildEnDict();//创建英文字典
    void buildCnDict();//创建中文字典
    void storeDict(const char* filepath);//将词典写入文件

    void showFiles()const;//查看文件路径,测试用
    void showDict()const;//查看词典,测试用

private:
    void getFiles();//获取文件绝对路径
    void pushDict(const string& word);//存储某个单词

private:
    vector<string> _files;
    vector<pair<string,int> > _dict;
    SplitTool * _splitTool;
    map<string,set<int> > _index;

};


#endif
